
import {
    good_fav,
    good_unfav,
    shopcart_add,
    shopcart_sub
} from '../utils/api'
import { Toast } from 'antd-mobile'
// ------------------同步action---------------


//生成同步action 收藏动作
function create_collect_action(params){ 
    return { type:'COLLECT',params };
}
//生成同步action 取消收藏动作
function create_cancel_collect_action(params){ 
    return { type:'CANCEL_COLLECT',params };
}

//生成同步action 购物车（数量+1）动作
function create_add_shopcart_action(params){ 
    return { type:'ADD_SHOPCART',params };
}
//生成同步action 购物车（数量-1）动作
function create_minus_shopcart_action(params){ 
    return { type:'MINUS_SHOPCART',params };
}

// ------------------异步action---------------

//生成 异步的 收藏动作（是个函数，默认 redux 只能处理{} 类型的同步action，对于function 类型的异步action 必须借助中间件才能处理）
function request_collect_action(params){
    var userinfo=localStorage.getItem('userinfo')?JSON.parse(localStorage.getItem('userinfo')):{};
    return function(dispatch){
        //发送请求，完成收藏
        good_fav({userid:userinfo.id,goodid:params.id}).then((res)=>{
            if(res.data.code==200){
                //触发同步action，同步到store中
                dispatch( create_collect_action(params));
                Toast.show({
                    icon: 'success',
                    content: res.data.msg
                })
            }
        })
    }
}
//生成 异步的 取消收藏动作
function request_cancel_collect_action(params){
    var userinfo=localStorage.getItem('userinfo')?JSON.parse(localStorage.getItem('userinfo')):{};
    return function(dispatch){
        //发送请求，完成收藏
        good_unfav({userid:userinfo.id,goodid:params.id}).then((res)=>{
            console.log(res);
            if(res.data.code==200){
                //触发同步action，同步到store中
                dispatch( create_cancel_collect_action(params));
                Toast.show({
                    icon: 'success',
                    content: res.data.msg
                })
            }
        })
    }
}



//生成 异步的 购物车数量+1
function request_add_shopcart_action(params){
    var userinfo=localStorage.getItem('userinfo')?JSON.parse(localStorage.getItem('userinfo')):{};
    return function(dispatch){
        //发送请求，完成收藏
        shopcart_add({userid:userinfo.id,goodid:params.id}).then((res)=>{
            if(res.data.code==200){
                //触发同步action，同步到store中
                dispatch( create_add_shopcart_action(params));
                Toast.show({
                    icon: 'success',
                    content: res.data.msg
                })
            }
        })
    }
}

//生成 异步的 购物车数量-1
function request_minus_shopcart_action(params){
    var userinfo=localStorage.getItem('userinfo')?JSON.parse(localStorage.getItem('userinfo')):{};
    return function(dispatch){
        //发送请求，完成收藏
        shopcart_sub({userid:userinfo.id,goodid:params.id}).then((res)=>{
            if(res.data.code==200){
                //触发同步action，同步到store中
                dispatch( create_minus_shopcart_action(params));
                Toast.show({
                    icon: 'success',
                    content: res.data.msg
                })
            }
        })
    }
}

export {
    request_collect_action,
    request_cancel_collect_action,

    request_add_shopcart_action,
    request_minus_shopcart_action
}